﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using KTFrameworkCus;
using System.Web.Security;

public partial class Controls_UCComments : System.Web.UI.UserControl
{
    public int productid { get; set; }
    string Comments = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            hfPostID.Value = productid.ToString();
            using (KTFrameworkCusEntities dc = new KTFrameworkCusEntities())
            {
                if (Globals.CurrentUserName != "")
                {
                    MultiView1.SetActiveView(vDaDangNhap);
                    udv_Users _user = dc.udv_Users.Where(t => t.UserName == Globals.CurrentUserName).FirstOrDefault();
                    if (_user != null)
                    {
                        txtemail.Text = _user.Email;
                        txtemail.Enabled = false;
                        txtten.Text = _user.FirstName;
                        txtten.Enabled = false;
                    }
                }
                else
                {
                    MultiView1.SetActiveView(vChuaDangNhap);
                }
            }
            loadComment();
            ltCommentList.Text = Comments;
            if (i == 0)
            {
                commentti.InnerHtml = "Chưa có bình luận";
                commentti.Visible = true;
            }
            else
            {
                commentti.Visible = false;
            }

        }
    }
    int i = 0;
    private void loadComment()
    {
        using (dmsFunction dmsf = new dmsFunction())
        {
            foreach (udv_comment item in dmsf.getCommentsByProductID(productid))
            {
                i++;
                Comments = Comments + "<div class='comment_box'><div class='comment_item'><div class='comment_box_inner'><div class='comment_box_inner_tc'><div class='comment_box_inner_tc_l'><ul><li><a href='' title=''><img src='" + (dmsf.getUserByUserName(item.AddedBy).Avatar == "" ? "/images/no-avatar.png" : dmsf.getUserByUserName(item.AddedBy).Avatar) + "' width='60' height='60' alt='' /></a></li><li><a class='replay replythis' title='"+item.id+"' href='#reply' title=''>Reply</a></li></ul></div><div class='comment_box_inner_tc_r'><ul><li class='comment_user'><a href='' title=''>" + item.AddedBy + ":</a> <span>" + item.AddedDate.Value.ToString("dd/MM/yyyy hh:mm:ss") + " </span></li><li class='comment_user_wro'><p>" + item.Body + "</p></li></ul></div><div class='clear'></div></div></div></div>";
                if (dmsf.getCommentbyParent(item.id).Count() > 0)
                {
                    foreach (udv_comment item1 in dmsf.getCommentbyParent(item.id))
                    {
                        i++;
                        Comments = Comments + " <div class='reply_item'><div class='reply_box_inner'><div class='reply_box_inner_tc'><div class='reply_box_inner_tc_l'><ul><li><a href='' title=''><img src='" + (dmsf.getUserByUserName(item.AddedBy).Avatar == "" ? "/images/no-avatar.png" : dmsf.getUserByUserName(item1.AddedBy).Avatar) + "' width='60' height='60' alt='' /></a></li></ul></div><div class='reply_box_inner_tc_r'><ul><li class='reply_user'><a href='' title=''>" + item1.AddedBy + ":</a> <span>" + item1.AddedDate.Value.ToString("dd/MM/yyyy hh:mm:ss") + " </span></li><li class='reply_user_wro'><p>" + item1.Body + "</p></li></ul></div><div class='clear'></div></div></div></div>";
                    }
                }
                Comments = Comments + "</div>";
            }
        }
    }

    protected void btnComment_Click(object sender, EventArgs e)
    {
        using (KTFrameworkCusEntities dc = new KTFrameworkCusEntities())
        {
            HttpCookie tam = HttpContext.Current.Request.Cookies["Comm"];
            if (tam != null)
            {
                lbmesse.Text = "Bạn cần phải đợi 30s sau để có thể đăng nhận xét tiếp theo!";
                return;
            }

            if (Globals.CurrentUserName == "")
            {
                udv_Users _mu = dc.udv_Users.Where(t => t.Email == txtemail.Text).FirstOrDefault();
                if (_mu != null)
                {
                    lbmesse.Text = "Email Đã có người sử dụng, nếu bạn là chủ nhân của Email này vui lòng đăng nhập vào hệ thống để tiếp tục đăng nhận xét hoặc bạn phải dùng Email khác để đăng nhận xét!";
                    return;
                }
            }
            udv_comment _comm = new udv_comment();
            _comm.AddedBy = Globals.CurrentUserName;
            _comm.AddedDate = DateTime.Now;
            _comm.ArticleID = 0;
            _comm.Body = txtnhanxet.Text;
            for (int i = 0; i < Roles.GetRolesForUser(Globals.CurrentUserName).Length; i++)
            {
                if (Roles.GetRolesForUser(Globals.CurrentUserName)[i] == "Administrator")
                {
                    _comm.isApproved = true;
                    break;
                }
                else {
                    _comm.isApproved = false;
                    lbmesse.Text = "Bình luận của bạn đã được đăng. Bạn vui lòng đợi trong lúc chúng tôi kiểm tra bình luận của bạn. Cám ơn!";
                }

            }
            
            _comm.ProductID = int.Parse(hfPostID.Value);
            _comm.ReplyOn = int.Parse(hfreplyto.Value);
            _comm.Title = "";
            dc.AddToudv_comment(_comm);
            dc.SaveChanges();

            HttpCookie cookie = new HttpCookie("Comm");
            cookie["exp"] = "c";
            cookie.Expires = DateTime.Now.AddSeconds(30);
            HttpContext.Current.Response.Cookies.Add(cookie);
            txtnhanxet.Text = "";
            //Response.Redirect(Request.RawUrl + "#comments");
        }
    }
}